package cn.tedu.servlet;

import cn.tedu.http.HttpRequest;
import cn.tedu.http.HttpResponse;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * Author：程Sir
 * Name： SmallServer
 * Content:
 *  根据javaEE（企业级应用开发）的标准开发规范，设定业务处理的类都是应该一个具体的服务端应用程序，
 *  这样的应用程序就被称为是servlet。
 *  按照开发的规范，业务的处理是在 service方法中实现的，
 *  数据的获取是通过 封装了客户端请求信息的HttpRequest对象
 *  数据的响应是通过 封装了服务端响应信息的HttpResponse对象的
 *
 *  其实在JavaEE中，Servlet 是一个标准的接口。
 *
 *  这个类是用来处理登录请求的
 */
public class LoginServlet {

    public void service(HttpRequest httpRequest, HttpResponse httpResponse) {
        System.out.println("开始处理登录请求...");
        // 获取登录信息
        String username = httpRequest.getParameter("username");
        String password = httpRequest.getParameter("password");

        // 判断是否为null
        if (username!=null || password !=null){
            // 查找符合条件的用户名和密码
            try (RandomAccessFile raf = new RandomAccessFile("user.txt", "r")){
                for (int i = 0; i <raf.length()/100 ; i++) {
                    raf.seek(i*100);
                    byte[] data = new byte[32];
                    raf.read(data);
                    // 将读取的数据转换为字符串
                    String name = new String(data, "utf-8").trim();
                    if (name.equals(username)){
                        // 用户名相等的前提下再进密码的比对
                        raf.read(data);
                        // 将读取的数据转换为字符串
                        String pwd = new String(data, "utf-8").trim();
                        if (pwd.equals(password)){
                            // 相等说明用户信息是正确的,放行！
                            File file = new File("./webapps/myweb/login_success.html");
                            httpResponse.setFileEntity(file);
                            return;
                        }
                    }
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

        File file = new File("./webapps/myweb/login_fail.html");
        httpResponse.setFileEntity(file);


        System.out.println("登录请求处理完毕！");
    }
}
